/**
 * The Entity-Component system used by Taareekah, also components written in Java.
 * <p>
 * Most {@linkplain gameobject.Component Components} will be written in Groovy 
 * code, but {@linkplain gameobject.Component Components} that must be written
 * in Java should be placed in this package.
 * <p>
 * The {@linkplain gameobject.GOManager GOManager} handles the creation, 
 * deletion, and tracking of {@linkplain gameobject.GOManager.GameObject GameObjects}
 * and {@linkplain gameobject.Component Components}. It does not handle the loading
 * and parsing of the Groovy code for the 
 * {@linkplain gameobject.Component Components}, this is handled by the
 * {@linkplain core.GameScriptManager#loadComponentClasses(String) GameScriptManager}.
 * <p>
 * New types of components are implemented in Groovy code. Below is an example: <br>
 * In file assets/GameObjects/Useless.groovy: <pre><code>
 * package gameobject;
 * 
 * import gameobject.Component;
 * 
 * public class Useless extends Component {
 *     private static final long serialVersionUID = 20140428L;
 *     public Useless() {
 *         component_typename = "Useless";
 *         addAttribute("useless_attribute", "");
 *         setMethod("uselessMethod", this.&uselessMethod);
 *         addRequiredComponent("AnotherUselessThing");
 *     }
 *     public String uselessMethod(String useless_param) {
 *         return useless_param + (String)getAttribute("useless_attribute");
 *     }
 * }
 * </code></pre>
 */

package gameobject;
